import PV_ICE
import matplotlib.pyplot as plt
import os,sys
from pathlib import Path
PV_ICE.__version__
'v0.2.0+340.g755e84a.dirty'
modulefile_m = r'C:\Users\hmirletz\Documents\GitHub\PV_ICE\tests\baseline_modules_test_3.csv'
materialfile_m = r'C:\Users\hmirletz\Documents\GitHub\PV_ICE\tests\baseline_material_test_3.csv'
testfolder = str(Path().resolve().parent.parent / 'PV_ICE' / 'TEMP')
sim1 = PV_ICE.Simulation(name='sim1', path=testfolder)
sim1.createScenario(name='scen1', massmodulefile=modulefile_m)
sim1.scenario['scen1'].addMaterial('mat1', massmatfile=materialfile_m)
path = C:\Users\hmirletz\Documents\GitHub\PV_ICE\PV_ICE\TEMP
sim1.calculateMassFlow()
>>>> Calculating Material Flows <<<< Working on Scenario: scen1 ******************** Finished Area+Power Generation Calculations ==> Working on Material : mat1
year, cum = sim1.aggregateResults()
# TO DO: Add HQ MF OU to aggregateResults
sim1.scenario['scen1'].material['mat1'].matdataOut_m.keys()
Index(['mat_EOL_ReMFG_VAT', 'mat_EOL_Recycled_2_HQ', 'mat_EOL_Recycled_2_OQ',
'mat_EOL_Recycled_HQ_into_MFG', 'mat_EOL_Recycled_HQ_into_MFG_notUSED',
'mat_EOL_Recycled_HQ_into_OU', 'mat_EOL_Recycled_VAT',
'mat_EnteringModuleManufacturing_total',
'mat_EnteringModuleManufacturing_virgin', 'mat_L0', 'mat_L1', 'mat_L2',
'mat_L3', 'mat_L4', 'mat_LostinModuleManufacturing',
'mat_MFG_Recycled_HQ_into_MFG', 'mat_MFG_Recycled_HQ_into_OU',
'mat_MFG_Recycled_into_HQ', 'mat_MFG_Recycled_into_OQ', 'mat_MFG_Scrap',
'mat_MFG_Scrap_Landfilled', 'mat_MFG_Scrap_Recycled_Losses_Landfilled',
'mat_MFG_Scrap_Recycled_Successfully', 'mat_MFG_Scrap_Sentto_Recycling',
'mat_Manufacturing_Input', 'mat_PG2_stored', 'mat_Total_EOL_Landfilled',
'mat_Total_Landfilled', 'mat_Total_MFG_Landfilled',
'mat_Total_Recycled_OU', 'mat_UsedSuccessfullyinModuleManufacturing',
'mat_Virgin_Stock', 'mat_Virgin_Stock_Raw', 'mat_reMFG',
'mat_reMFG_2_recycle', 'mat_reMFG_all_unyields',
'mat_reMFG_mod_unyield', 'mat_reMFG_target', 'mat_reMFG_untarget',
'mat_reMFG_unyield', 'mat_reMFG_yield', 'mat_recycled_PG4',
'mat_recycled_all', 'mat_recycled_target', 'mat_recycled_yield'],
dtype='object')
plt.plot(sim1.scenario['scen1'].material['mat1'].matdataOut_m['mat_recycled_PG4'])
[<matplotlib.lines.Line2D at 0x24cbcc1ab20>]
plt.plot(sim1.scenario['scen1'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_OU'])
[<matplotlib.lines.Line2D at 0x24cbd2ff430>]
year.keys()
Index(['VirginStock_mat1_sim1_scen1_[Tonnes]',
'VirginStock_Module_sim1_scen1_[Tonnes]',
'WasteAll_mat1_sim1_scen1_[Tonnes]',
'WasteAll_Module_sim1_scen1_[Tonnes]',
'WasteEOL_mat1_sim1_scen1_[Tonnes]',
'WasteEOL_Module_sim1_scen1_[Tonnes]',
'WasteMFG_mat1_sim1_scen1_[Tonnes]',
'WasteMFG_Module_sim1_scen1_[Tonnes]',
'newInstalledCapacity_sim1_scen1_[MW]',
'ActiveCapacity_sim1_scen1_[MW]',
'DecommisionedCapacity_sim1_scen1_[MW]'],
dtype='object')
plt.plot(year['VirginStock_mat1_sim1_scen1_[Tonnes]'])
[<matplotlib.lines.Line2D at 0x24cbd36ed00>]
plt.plot(year['ActiveCapacity_sim1_scen1_[MW]'])
[<matplotlib.lines.Line2D at 0x24cbd3e2220>]
sim1.plotMetricResults()
[]
sim1.createScenario(name='scen2', massmodulefile=modulefile_m)
sim1.scenario['scen2'].addMaterial('mat1', massmatfile=materialfile_m)
# sim1.scenario['scen2'].perfectRecycling()
#'mat_EOL_RecycledHQ_Reused4MFG'
sim1.modifyScenario('scen2', 'mod_EOL_pg3_reMFG', 100, start_year=2000) #all modules attempt remfg
sim1.modifyScenario('scen2', 'mod_EOL_sp_reMFG_recycle', 100, start_year=2000) # recycle if can't remfg
sim1.modifyScenario('scen2', 'mod_EOL_pb3_reMFG', 100, start_year=2000) # remfg bad mods too
sim1.modifyScenario('scen2', 'mod_EOL_reMFG_yield', 100, start_year=2000) # REMFG YIELD 98%
#set all other paths to 0
sim1.modifyScenario('scen2', 'mod_EOL_pg0_resell', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_EOL_pg1_landfill', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_EOL_pg2_stored', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_EOL_pg4_recycled', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_EOL_pb1_landfill', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_EOL_pb2_stored', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_EOL_pb4_recycled', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_Repair', 0.0, start_year=2000) #
sim1.modifyScenario('scen2', 'mod_MerchantTail', 0.0, start_year=2000) #
sim1.scenario['scen2'].modifyMaterials('mat1', 'mat_PG3_ReMFG_target', 100.0, start_year=2000) #send to recycle
sim1.scenario['scen2'].modifyMaterials('mat1', 'mat_ReMFG_yield', 100.0, start_year=2000) #99% yeild
sim1.scenario['scen2'].modifyMaterials('mat1', 'mat_PG4_Recycling_target', 0.0, start_year=2000) #99% yeild
sim1.calculateMassFlow()
>>>> Calculating Material Flows <<<< Working on Scenario: scen1 ******************** Finished Area+Power Generation Calculations ==> Working on Material : mat1 Working on Scenario: scen2 ******************** Finished Area+Power Generation Calculations ==> Working on Material : mat1 ReMFG surplus End of Sim for Mat mat1 Scenario scen2 = 210.0 tonnes.
year, cum = sim1.aggregateResults()
# TO DO: Add HQ MF OU to aggregateResults
sim1.scenario['scen1'].material['mat1'].matdataOut_m.keys()
Index(['mat_EOL_ReMFG_VAT', 'mat_EOL_Recycled_2_HQ', 'mat_EOL_Recycled_2_OQ',
'mat_EOL_Recycled_HQ_into_MFG', 'mat_EOL_Recycled_HQ_into_MFG_notUSED',
'mat_EOL_Recycled_HQ_into_OU', 'mat_EOL_Recycled_VAT',
'mat_EnteringModuleManufacturing_total',
'mat_EnteringModuleManufacturing_virgin', 'mat_L0', 'mat_L1', 'mat_L2',
'mat_L3', 'mat_L4', 'mat_LostinModuleManufacturing',
'mat_MFG_Recycled_HQ_into_MFG', 'mat_MFG_Recycled_HQ_into_OU',
'mat_MFG_Recycled_into_HQ', 'mat_MFG_Recycled_into_OQ', 'mat_MFG_Scrap',
'mat_MFG_Scrap_Landfilled', 'mat_MFG_Scrap_Recycled_Losses_Landfilled',
'mat_MFG_Scrap_Recycled_Successfully', 'mat_MFG_Scrap_Sentto_Recycling',
'mat_Manufacturing_Input', 'mat_PG2_stored', 'mat_Total_EOL_Landfilled',
'mat_Total_Landfilled', 'mat_Total_MFG_Landfilled',
'mat_Total_Recycled_OU', 'mat_UsedSuccessfullyinModuleManufacturing',
'mat_Virgin_Stock', 'mat_Virgin_Stock_Raw', 'mat_reMFG',
'mat_reMFG_2_recycle', 'mat_reMFG_all_unyields',
'mat_reMFG_mod_unyield', 'mat_reMFG_target', 'mat_reMFG_untarget',
'mat_reMFG_unyield', 'mat_reMFG_yield', 'mat_recycled_PG4',
'mat_recycled_all', 'mat_recycled_target', 'mat_recycled_yield'],
dtype='object')
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_recycled_PG4'])
[<matplotlib.lines.Line2D at 0x24cc2022550>]
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_OU'])
[<matplotlib.lines.Line2D at 0x24cc21bf4c0>]
year['VirginStock_mat1_sim1_scen1_[Tonnes]'].sum()
290.0
year['VirginStock_mat1_sim1_scen2_[Tonnes]'].sum()
210.0
sim1.scenario['scen1'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_OU'].sum()
290000000.0
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'])
[<matplotlib.lines.Line2D at 0x24cc209a4f0>]
sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'].sum()
0.0
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'], label='What actually got used in reMFG')
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'], label='What got Sent in reMFG')
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG']
-
sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'], label='What did not got used in reMFG')
plt.legend()
(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG']
-
sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT']).sum()
0.0
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'])
[<matplotlib.lines.Line2D at 0x24cc216ea00>]
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'])
[<matplotlib.lines.Line2D at 0x24cc20bafd0>]
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'])
[<matplotlib.lines.Line2D at 0x24cc1f03850>]
year.keys()
Index(['VirginStock_mat1_sim1_scen1_[Tonnes]',
'VirginStock_Module_sim1_scen1_[Tonnes]',
'WasteAll_mat1_sim1_scen1_[Tonnes]',
'WasteAll_Module_sim1_scen1_[Tonnes]',
'WasteEOL_mat1_sim1_scen1_[Tonnes]',
'WasteEOL_Module_sim1_scen1_[Tonnes]',
'WasteMFG_mat1_sim1_scen1_[Tonnes]',
'WasteMFG_Module_sim1_scen1_[Tonnes]',
'VirginStock_mat1_sim1_scen2_[Tonnes]',
'VirginStock_Module_sim1_scen2_[Tonnes]',
'WasteAll_mat1_sim1_scen2_[Tonnes]',
'WasteAll_Module_sim1_scen2_[Tonnes]',
'WasteEOL_mat1_sim1_scen2_[Tonnes]',
'WasteEOL_Module_sim1_scen2_[Tonnes]',
'WasteMFG_mat1_sim1_scen2_[Tonnes]',
'WasteMFG_Module_sim1_scen2_[Tonnes]',
'newInstalledCapacity_sim1_scen1_[MW]',
'newInstalledCapacity_sim1_scen2_[MW]',
'ActiveCapacity_sim1_scen1_[MW]',
'DecommisionedCapacity_sim1_scen1_[MW]',
'ActiveCapacity_sim1_scen2_[MW]',
'DecommisionedCapacity_sim1_scen2_[MW]'],
dtype='object')
plt.plot(year['VirginStock_mat1_sim1_scen1_[Tonnes]'])
plt.plot(year['VirginStock_mat1_sim1_scen2_[Tonnes]'])
[<matplotlib.lines.Line2D at 0x24cc1fa34f0>]
plt.plot(year['ActiveCapacity_sim1_scen2_[MW]'])
[<matplotlib.lines.Line2D at 0x24cc21de730>]
sim1.plotMetricResults()
[]
#sim1.scenario['scen2'].scenMod_perfectRecycling()